Methods and systems for controlling a semiconductor fabrication process

ABSTRACT

Software for controlling processes in a heterogeneous semiconductor manufacturing environment may include a wafer-centric database, a real-time scheduler using a neural network, and a graphical user interface displaying simulated operation of the system. These features may be employed alone or in combination to offer improved usability and computational efficiency for real time control and monitoring of a semiconductor manufacturing process. More generally, these techniques may be usefully employed in a variety of real time control systems, particularly systems requiring complex scheduling decisions or heterogeneous systems constructed of hardware from numerous independent vendors.

CROSS-REFERENCE TO RELATED APPLICATIONS

This claims the benefit of U.S. App. No. 60/746,163 filed on May 1, 2006and U.S. App. No. 60/807,189 filed on Jul. 12, 2006. This application isa continuation-in-part of U.S. application Ser. No. 10/985,834, filed onNov. 10, 2004, which claims the benefit of U.S. App. No. 60/518,823filed on Nov. 10, 2003 and U.S. App. No. 60/607,649 filed on Sep. 7,2004. This application is also a continuation-in-part of U.S.application Ser. No. 11/123,966 filed on May 6, 2005, and acontinuation-in-part of U.S. application Ser. No. 11/302,563 filed onDec. 13, 2005.

Each of the foregoing commonly-owned applications is incorporated byreference herein in its entirety.

BACKGROUND

1. Field

This invention relates to, inter alia, methods of utilizing awafer-centric database to improve system throughput.

2. Related Art

The handling of workpieces such as wafers within a semiconductormanufacturing environment can present significant computing challenges.Hardware such as process modules, handlers, valves, robots, and otherequipment are commonly assembled from a variety of differentmanufacturers each of which may provide proprietary or pre-compiledsoftware unsuitable for a newly conceived process. In addition,fabrication-wide software typically compiles relevant data as simple,chronological logs of output from sensors, process modules, controllers,and the like, so that finding information for handler or wafer-specificprocessing requires an initial search of all of the potentially relevantlog files for data, followed by processing the search results into aform suitable for process control such as scheduling decisions.

There remains a need for improved software suitable for real-timecontrol of semiconductor manufacturing processes.

SUMMARY OF THE INVENTION

Software for controlling processes in a heterogeneous semiconductormanufacturing environment may include a wafer-centric database, areal-time scheduler using a neural network, and a graphical userinterface displaying simulated operation of the system. These featuresmay be employed alone or in combination to offer improved usability andcomputational efficiency for real time control and monitoring of asemiconductor manufacturing process. More generally, these techniquesmay be usefully employed in a variety of real time control systems,particularly systems requiring complex scheduling decisions orheterogeneous systems constructed of hardware from numerous independentvendors.

In one aspect, a user interface disclosed herein includes a display of athree-dimensional simulation of a semiconductor workpiece handlingsystem that includes a hardware item; and a link to information relatedto the hardware item, wherein the link may be substantially containedwithin an area of the display where the hardware item resides, andwherein the information may include at least a status of the hardwareitem and technical information for the hardware item.

The three-dimensional simulation may be a real-time simulation basedupon operation of a physical semiconductor workpiece handling system.The semiconductor workpiece handling system may include a plurality ofhardware items, each one of the plurality of hardware items may have alink to information associated therewith. The technical information mayinclude a list of replacement parts for the hardware item. The technicalinformation may include a manual for the hardware item. The technicalinformation may include a maintenance log for the hardware item. Thelink may be activated by a mouse over of the link. The link may beactivated by a mouse click of the link. The information may be displayedin a new window upon activation of the link. The information may bedisplayed in a pop-up window upon activation of the link. The statusinformation may include sensor data received from the hardware item. Thestatus information may include diagnostic information for the hardwareitem. The diagnostic information may include one or more of aperformance evaluation, an expected time to failure, a maintenancealert, and an operating condition alert. The hardware item may includeone or more of a robotic arm, an end effector, an isolation valve, aheating station, a cooling station, a load lock, a vacuum pump, a robotdrive, a metrology device, a sensor, a process module, and a devicewithin a process module. The hardware item may include a workpiece. Theworkpiece may include a semiconductor wafer. The status information mayinclude a particle map. The status information may include an estimatedtemperature. The status information may include a wafer center location.The status information may include substantially real time data for thehardware item. The display may include a tool for user selection of aperspective for viewing the three-dimensional simulation.

In one aspect, a system disclosed herein includes a state machine thatcontrols operation of a semiconductor manufacturing system that mayschedule processing of one or more workpieces, the state machine mayinclude a plurality of states associated by a plurality of transitions,each one of the plurality of transitions may have a weight assignedthereto, wherein when the state machine is operating within one of theplurality of states, a selection of a transition from the one of theplurality of states to another one of the plurality of states may bedetermined by evaluating the weight assigned to each one of a number ofpossible transitions from the one of the plurality of states; and aneural network that may receive as inputs data from the semiconductormanufacturing system and may provide as outputs the weights for one ormore of the plurality of transitions.

At least one of the states may represent a state of an item of hardwarewithin the semiconductor manufacturing system. At least one of thestates may represent a position of a workpiece within the semiconductormanufacturing system. At least one of the states may represent aposition of an isolation valve within the system. The neural network maybe updated in substantially real time. The neural network may be updatedevery 20 milliseconds. The inputs to the neural network may include oneor more of sensor data, temperature data, a detected workpiece position,an estimated workpiece temperature, an actual workpiece temperature, avalve state, an isolation valve state, robotic drive encoder data,robotic arm position data, end effector height data, a process time, aprocess status, a pick time, a place time, and a control signal. Theinputs to the neural network may include at least one process time for aworkpiece within the semiconductor manufacturing system. The at leastone process time may include one or more of a target duration, a starttime, an end time, and an estimated end time. The inputs may include atransition time. The transition time may include one or more of a pumpdown to vacuum time and a vent to atmosphere time. At least one of thestates may include a transition to itself. The state machine may beupdated in substantially real time. The state machine may be updatedevery 20 milliseconds. The system may also further include a pluralityof state machines, each one of the plurality of state machines maycontrol a portion of the semiconductor manufacturing system according toone of a plurality of neural networks.

In one aspect, a computer program product disclosed herein includescomputer executable code embodied in a computer readable medium that,when executing on one or more computing devices, performs the steps of:controlling operation of a semiconductor manufacturing system with astate machine to schedule processing of one or more workpieces, thestate machine may include a plurality of states associated by aplurality of transitions, each one of the plurality of transitions mayhave a weight assigned thereto; receiving data from the semiconductormanufacturing system; calculating the weight assigned to each one of anumber of possible transitions from a current state of the plurality ofstates by applying the data as inputs to a neural network; and selectinga transition from the current state of the plurality of states byevaluating the weight assigned to each one of the number of possibletransitions from the current state.

At least one of the plurality of states may represent a state of an itemof hardware within the semiconductor manufacturing system. At least oneof the states may represent a position of a workpiece within thesemiconductor manufacturing system. At least one of the states mayrepresent a position of an isolation valve within the system. Thecomputer executable code may further perform the step of updating theneural network in substantially real time. The computer executable codemay further perform the step of updating the neural network every 20milliseconds. The inputs to the neural network may include one or moreof sensor data, temperature data, a detected workpiece position, anestimated workpiece temperature, an actual workpiece temperature, avalve state, an isolation valve state, robotic drive encoder data,robotic arm position data, end effector height data, a process time, aprocess status, a pick time, a place time, and a control signal. Theinputs to the neural network may include at least one process time for aworkpiece within the semiconductor manufacturing system. The at leastone process time may include one or more of a target duration, a starttime, an end time, and an estimated end time. The inputs may include atransition time. The transition time may include one or more of a pumpdown to vacuum time and a vent to atmosphere time. At least one of thestates includes a transition to itself. The computer executable code mayfurther perform the step of updating the state machine in substantiallyreal time. The computer executable code may further perform the step ofupdating the state machine every 20 milliseconds. The computerexecutable code may further perform the step of controlling operation ofa semiconductor manufacturing system with a plurality of state machines,each one of the plurality of state machines controlling a portion of thesemiconductor manufacturing system according to one of a plurality ofneural networks.

In one aspect, a method disclosed herein includes controlling operationof a semiconductor manufacturing system with a state machine to scheduleprocessing of one or more workpieces, the state machine may include aplurality of states associated by a plurality of transitions, each oneof the plurality of transitions may have a weight assigned thereto;receiving data from the semiconductor manufacturing system; calculatingthe weight assigned to each one of a number of possible transitions froma current state of the plurality of states by applying the data asinputs to a neural network; and selecting a transition from the currentstate of the plurality of states by evaluating the weight assigned toeach one of the number of possible transitions from the current state.

At least one of the plurality of states may represent a state of an itemof hardware within the semiconductor manufacturing system. At least oneof the states may represent a position of a workpiece within thesemiconductor manufacturing system. At least one of the states mayrepresent a position of an isolation valve within the system. Thecomputer executable code may further perform the step of updating theneural network in substantially real time. The computer executable codemay further perform the step of updating the neural network every 20milliseconds. The inputs to the neural network include one or more ofsensor data, temperature data, a detected workpiece position, anestimated workpiece temperature, an actual workpiece temperature, avalve state, an isolation valve state, robotic drive encoder data,robotic arm position data, end effector height data, a process time, aprocess status, a pick time, a place time, an encoder position, a timeremaining for a workpiece in a process module, a time remaining for aworkpiece in a load lock, and a control signal. The inputs to the neuralnetwork may include at least one process time for a workpiece within thesemiconductor manufacturing system. The at least one process time mayinclude one or more of a target duration, a start time, an end time, andan estimated end time. The inputs may include a transition time. Thetransition time may include one or more of a pump down to vacuum timeand a vent to atmosphere time. At least one of the states may include atransition to itself. The method may further include the step ofupdating the state machine in substantially real time. The method mayfurther include the step of updating the state machine every 20milliseconds. The method may further include the step of controllingoperation of a semiconductor manufacturing system with a plurality ofstate machines, each one of the plurality of state machines may controla portion of the semiconductor manufacturing system according to one ofa plurality of neural networks. The method may further include trainingthe neural network to calculate weights for a desired workpieceprocessing schedule. The state machine may schedule concurrentprocessing of a plurality of workpieces.

In one aspect, a method disclosed herein includes connecting a pluralityof nodes into a neural network, each one of the nodes represented by aprogramming object; defining a condition for converting one of theplurality of nodes into a second plurality of nodes; and when thecondition is met, converting the one of the plurality of nodes into twoor more nodes. The condition may include a processing constraint.

In one aspect, a system disclosed herein includes a semiconductormanufacturing system; a controller that controls processing ofworkpieces within the semiconductor manufacturing system, wherein thecontroller permits a selection of one or more of a plurality ofscheduling techniques to control processing.

The plurality of scheduling techniques may include one or more ofrule-based scheduling, route-based scheduling, state-based scheduling,and neural-network-based scheduling. The controller may provide aninterface for user selection of the one or more of the plurality ofscheduling techniques. The controller may select the one or more of theplurality of scheduling techniques according to a processing metric. Thecontroller may employ at least two of the plurality of schedulingtechniques concurrently.

In one aspect, a method disclosed herein includes creating a datastructure for a workpiece, the data structure including an identity ofthe workpiece and one or more fields for storing information relating tothe workpiece; processing the workpiece in a semiconductor manufacturingsystem; receiving data from the semiconductor manufacturing systemrelating to the processing of the workpiece; and storing the data in oneof the one or more fields of the data structure.

The data structure may be an object oriented data structure. The datastructure may be embodied in a relational database. The method mayinclude creating a plurality of data structures for a plurality ofworkpieces. The data may include a measured property of the workpiece.The measured property may include a location of the workpiece. Themeasured property may include a process time for the workpiece. Themeasured property may include a temperature of the workpiece. The datamay include a calculated property of the workpiece. The calculatedproperty may include an estimated temperature of the workpiece. Themethod may include updating the estimated temperature according to athermal model for the workpiece. The method may include storing a timeat which the temperature was estimated. The workpiece may include asemiconductor wafer. The method may include providing data from aplurality of process modules for storage in the data structure. Themethod may include providing data from a robotic semiconductor waferhandler for storage in the data structure. The method may includestoring a time in one of the one or more fields of the data structure.The method may include storing an attribute of the data in one of theone or more fields of the data structure. The attribute may identify asource of the data. The attribute may identify a time that the data wasacquired. The method may include retrieving data from at least one ofthe one or more fields of the data structure and using the retrieveddata to control processing of the workpiece. The data may include arecipe for processing the workpiece. The data may include a particle mapfor the workpiece that identifies a location of one or more particles onthe workpiece. The data may include a process history for the workpiece.

In one aspect, a computer program product disclosed herein includescomputer executable code embodied on a computer readable medium that,when executing on one or more computing devices, performs the steps of:creating a data structure for a workpiece, the data structure includingan identity of the workpiece and one or more fields for storinginformation relating to the workpiece; receiving data from asemiconductor manufacturing system relating to processing of theworkpiece while the workpiece is processed by the semiconductormanufacturing system; and storing the data in one of the one or morefields of the data structure.

The data structure may be an object oriented data structure. The datastructure may be embodied in a relational database. The computer programproduct may include code the performs the step of creating a pluralityof data structures for a plurality of workpieces. The data may include ameasured property of the workpiece. The measured property may include alocation of the workpiece. The measured property may include a processtime of the workpiece. The measured property may include a temperatureof the workpiece. The data may include a calculated property of theworkpiece. The calculated property may include an estimated temperatureof the workpiece. The computer program product may include code thatperforms the step of updating the estimated temperature according to athermal model for the workpiece. The computer program product mayinclude code that performs the step of storing a time of attaining theestimated temperature. The workpiece may include a semiconductor wafer.The semiconductor manufacturing system may include a plurality ofprocess modules that provide data for storage in the data structure. Thesemiconductor manufacturing system may include a robotic semiconductorwafer handler that provides data for storage in the data structure. Thecomputer program product may include code that performs the step ofassociating a time with the data in one of the one or more fields of thedata structure. The computer program product may include code thatperforms the step of storing an attribute of the data in one of the oneor more fields of the data structure. The attribute may identify asource of the data. The attribute may identify a time that the data wasacquired. The computer program product may include code that performsthe step of retrieving data from at least one of the one or more fieldsof the data structure and using the retrieved data to control processingof the workpiece. The data may include a recipe for processing theworkpiece. The data may include a particle map for the workpiece thatidentifies a location of one or more particles on the workpiece. Thedata may include a process history for the workpiece.

In one aspect, a system disclosed herein includes a semiconductormanufacturing system; at least one program to control operation of thesemiconductor manufacturing system to process a plurality of wafers, andto receive data from the semiconductor manufacturing system relating toone of the plurality of wafers; a database that maintains a datastructure for each one of the plurality of wafers and stores thereceived data in the data structure corresponding to the related one ofthe plurality of wafers. The at least one program may include softwareto optimize throughput of the semiconductor manufacturing systemaccording to wafer-specific data in the database.

In one aspect, a computer readable medium disclosed herein has storedthereon a data structure, the data structure may include: a first fielduniquely identifying a wafer; a second field containing a measured valuefor the wafer during a fabrication process; a third field containing acalculated value for the wafer; and a forth field containing informationabout at least one process step to which the wafer has been exposed. Thedata structure may include a fifth field containing at least oneprospective processing step for the wafer.

In one aspect, a system disclosed herein includes a semiconductorhandling system including at least one robot and a plurality of processchambers; a software controller that controls operation of the handlingsystem to process one or more workpieces; and an electronic interfacethat may include a shared medium that couples the at least one robot,the plurality of process chambers, and the controller in a communicatingrelationship.

The shared medium may include a daisy chain in which the at least onerobot, the plurality of process chambers, and the controller share atleast one wire. The shared medium may include a wireless network. Theoperation of the handling system may include controlling one or moreslot valves. The operation of the handling system may include moving theone or more workpieces among the process chambers with the at least onerobot. The operation of the handling system may include receiving sensordata from at least one of the plurality of process chambers.

In one aspect, a system disclosed herein includes a semiconductorhandling system that may include at least one robot and a plurality ofprocess chambers; at least one workpiece within the semiconductorhandling system; a database that stores data for the at least oneworkpiece indexed according to a unique identifier for the at least oneworkpiece; a controller that controls operation of the semiconductorhandling system, the controller may employ a neural network and a finitestate machine to schedule handling of the at least one workpiece; and agraphical user interface that may display a real time three-dimensionalview of the semiconductor handling system and the at least oneworkpiece.

BRIEF DESCRIPTION OF FIGURES

The foregoing and other objects and advantages of the invention will beappreciated more fully from the following further description thereof,with reference to the accompanying drawings wherein:

FIG. 1 shows a semiconductor processing system.

FIG. 2 shows a high-level software architecture for controllingoperation of a semiconductor processing system.

FIG. 3 shows a graphical user interface for human monitoring and controlof a semiconductor processing system.

FIG. 4 shows a finite state machine.

FIG. 5 shows a neural network.

FIG. 6 shows a neural network providing weights to a finite statemachine.

FIG. 7 shows a process for controlling a semiconductor processing systemwith a finite state machine and a neural network.

FIG. 8 is a functional block diagram of a self-propagating object in aneural network.

FIG. 9 shows a data structure for wafer-centric data handling.

FIG. 10 shows a use of wafer-centric information to control a workpiecefabrication process.

FIG. 11 shows an application of time-based wafer data stored in awafer-centric database.

FIG. 12 shows a software system including a black box data recorder.

FIG. 13 shows a network for interconnecting process hardware.

DETAILED DESCRIPTION

The systems and methods described herein relate to software foroperating a semiconductor manufacturing system. While the followingexample embodiments are directed generally to semiconductor fabrication,it will be understood the that the principles disclosed herein havebroader applicability, and may be usefully employed, for example, in anyindustrial control environment, particularly environments characterizedby complex scheduling, control of robotic components, and/or real timeprocessing based upon system states, sensor feedback, and the like.

FIG. 1 shows a semiconductor processing system. The system 100 forprocessing a wafer 104 may include a plurality of valves 108, aplurality of process tools 110, handling hardware 112, control software114, and a load lock 116. In general operation, the system 100 operatesto receive a wafer 104 through the load lock 116, to move the wafer 104among the process tools 110 with the handling hardware 112 so that thewafer 104 may be processed, and to remove the processed wafer 104through the load lock 116.

The wafer 104 may be any wafer or other workpiece processed by thesystem 100. More generally, terms “wafer” and “workpiece” are usedherein as a short hand for all substrates and other materials that mightbe handled by a semiconductor fabrication system. It will be understoodthat, while the following description is applicable to wafers, andrefers specifically to wafers in a number of illustrative embodiments, avariety of other objects may be handled within a semiconductor facilityincluding a production wafer, a test wafer, a cleaning wafer, acalibration wafer, or the like, as well as other substrates (such as forreticles, magnetic heads, flat panels, and the like), includingsubstrates having various shapes such as square or rectangularsubstrates. In addition, a particular wafer-related operation may relateto a batch of wafers, which may be arranged horizontally within a plane,vertically stacked, or otherwise positioned for group handling,processing, and so forth. All such workpieces are intended to fallwithin the scope of the term “wafer” or “workpiece” as used hereinunless a different meaning is explicitly provided or otherwise clearfrom the context.

The valves 108 may include slot valves or any other isolation valves orother hardware for isolating the environment of a process tool 110 froma shared vacuum environment of the system 100. Each valve 108 may beoperable to selectively isolate one or more interior chambers.

The process tools 110 may include any tools or modules suitable forprocessing semiconductor wafers. For example, the process tools 110 mayinclude any semiconductor process module or tool, including withoutlimitation metrology tools, deposition tools, lithography tools, etchingtools, coating tools, buffer stations, storage tools, inspection tools,heating/cooling stations, and so forth. The process tools 110 may also,or instead, include cluster tools with a number of different processtools arranged about a common wafer handler.

The handling hardware 112 may include one or more robotic arms,transport carts, elevators, transfer stations and the like, as well ascombinations of these. In general, the handling hardware 112 operates tomanipulate wafers 104 within the system 100, such as by moving a wafer104 between two of the process tools 110, or to/from the load lock 116.While in certain instances, the handling hardware 112 may include asingle robotic arm or transport cart, more complex combinations may beusefully employed, such as a number of robotic arms that hand off wafersalong a line of process tools (either directly or via a transferstation), a number of robots that service a cart (such as a magneticallylevitated cart or a cart on rails) for relatively long distancetransport, and so forth. All such combinations that might be usefullyemployed to manipulate wafers and transfer wafers among process tools110 are intended to fall within the scope of the handling hardware 112described herein.

The control software 114 performs a variety of tasks associated withprocessing wafers 104 within the system 100. By way of example and notlimitation, the control software 114 may control operation of the valves108, process tools 110, handling hardware 112, and load lock 116. Eachof these hardware items may have a proprietary or open programminginterface, and the control software 114 may also, or instead, managecommunications with these hardware items, such as by interpreting datafrom the hardware or providing control signals to the hardware. At amore abstract level, the control software 114 may coordinate the variouscomponents of the system 100 to schedule processing of one or morewafers 104, such as by coordinating and controlling operations of theload lock 116 and handling system 112 to move a wafer 104 into thesystem 100 and into one of the process tools 110. The control software114 may also provide an external programmatic interface for controllingthe entire system 100, and may also, or instead, provide information toa fabrication-wide computer infrastructure, such as event logs, statusinformation, and the like. As will be described in greater detail below,the control software 114 may employ a neural network to calculateweights for a finite state machine that controls process scheduling. Aswill also be described in greater detail below, the control software 114may use data from or provide data to a wafer-centric database. Thecontrol software 114 may also provide a graphical user interface foruser interaction with the system 100 and related process data. Moregenerally, the control software 114 may support any software functionsassociated with status, monitoring, maintenance, evaluation,programming, control, and/or operation of the system 100, whether withrespect to particular devices, the system 100, or a fabrication facilityof which the system 100 forms a part.

The load lock 116 may include any device or combination of devices thatoperate to control access to a vacuum or other controlled interiorenvironment 118 maintained for the handling hardware 112 and processtools 110. It will be appreciated that, while a single load lock 116 isdepicted, the system 100 may include multiple load locks 116, such as anexit load lock opposite the first load lock 116 (i.e., at the bottom ofFIG. 1), one or more mid-entry load locks 116, and the like. The loadlock 116 may include multiple shelves for batch wafer operations,heating/cooling systems, sensors to detect, e.g., wafer position,temperature, and the like, and any other systems or sub-systems usefulfor handling and/or temporary storage of wafers in transit between theinterior environment 118 and an exterior environment. The load lock mayinclude vacuum pumps, vents, gas supplies, slot valves, and any otherhardware useful for handling wafers in this context. It will be furtherappreciated that the load lock 116 may expose the interior environment118 directly to an external environment such as a clean room, or may becoupled to an equipment front end module, unified pod handler, or thelike to transition single wafers or groups of wafers between theinterior environment 118 and other areas of a fabrication facility.

It will be appreciated that the description of the system 100 ispurposefully generic. A semiconductor processing system may include awide array of hardware, sensors and the like, all of which may becontrolled or used by the control software 114 to achieve desired waferprocessing. For example, although four process tools 110 are depicted,it will be understood that fewer or more tools 110 may be employed, andeach tool 110 may be a single tool, a process module, a cluster tool,stacked process modules, batch processing modules, and so forth.Further, while a linear arrangement is depicted, any suitable layout oftools 110 and handling hardware 112 may be usefully employed accordingto a particular process design. Further, tools such as aligners, robots,carts, tracks, elevators, and the like may be employed, along withsensors (such as pressure sensors, optical sensors, contaminationsensors, etc.), timers, switches, valves, actuators, relays, motors, andso forth, may be suitably employed to control or monitor processes. Allsuch variations are intended to fall within the scope of the system 100described herein.

In more complex processing scenarios, the system 100 may processmultiple wafers concurrently. Thus a first wafer may be introduced andmoved by the handling hardware 112 to a process tool 110 and, while thefirst wafer is being processed, receive a second wafer which may bemoved to a different process tool 110. Additional wafers may beintroduced, and/or one of the wafers within the interior environment 118may be moved among the various process tools 110. Thus, any number ofwafers may be concurrently handled and/or processed consistent with thephysical capabilities of the system 100.

FIG. 2 shows a high-level software architecture for controllingoperation of a semiconductor processing system. In general, the software200 may include a number of process tool interfaces 202, other hardwareinterfaces 210, a controller 220 including a hardware interface 210 forintegrating communications with the foregoing, a user interfacecomponent 222, a scheduling/control component 224, a diagnosticscomponent 226, and a fabrication facility interface 230, and one or moredatabases maintained for facility-wide use, such as a wafer database242, and a records database 244. It will be appreciated that theforegoing software components and the arrangement thereof as depicted inFIG. 2 has been generalized to facilitate discussion of the morespecific systems described below, and that numerous variations arepossible.

The process tool interfaces 202 may be programming interfaces residenton process tools, process modules, cluster tools, or the like.

Interfaces to other hardware 204 may include physical interfaces (e.g.,wire leads or a wireless network connection) or programmatic interfacesto any other hardware useful in a semiconductor manufacturing process.This may include, for example, interfaces to robots, carts, elevators,aligners, slot valves, pumps, vents, heaters, coolers, electricallycontrolled grippers, and so forth. This may also include sensorinterfaces such as outputs from thermometers, optical sensors, pressuresensors, gas detectors, voltmeters, ohmmeters, robotic drive encoders,and so forth.

The controller 220 may be an integrated controller for a processingsystem, such as the system 100 described above. The controller 220 maybe embodied on a computer or workstation located physically near thesystem, or may be embodied in a remote computer located in a controlroom or other computer facility, or may be integrated into afabrication-wide software system.

The hardware interface 210 may provide an consistent internal interfacefor the controller 220 to exercise programmatic control over inputs andoutputs for the hardware described above.

Within the controller 220, the user interface component 222 may providea user interface for human control and monitoring of operation of thesystem 100. The user interface, which is described below in greaterdetail, may include graphics, animation, simulations, manual control,recipe selection, performance statistics, and any other inputs oroutputs useful for human control of the system 100. It will beappreciated that a wide variety of interface techniques are known andmay be usefully employed to provide a graphical user interface asdescribed below. This includes network-oriented interface technologiessuch as web server technologies, as well as application-orientedinterface technologies. Unless otherwise specified or clear from thecontext, all such technologies may be suitably employed with the systemsand methods described herein.

The scheduling component 224 processes recipes for wafers within thesystem 100. This may include scheduling of movements among processtools, as well as processing within particular process tools. Thescheduling component may receive recipes in any suitable machinereadable form, and may create corresponding control signals for thesystem 100. During execution, the control signals may be communicated tosystem components through the hardware interface 210. Recipes and othersystem control instructions may be received from a remote location suchas a central fabrication control system through the fabrication facilityinterface 230, or may be entered locally at a computer device thatoperates the controller 220.

Scheduling may be controlled in a number of different ways. For example,the scheduling component 224 may employ state machines and neuralnetworks as described in greater detail below. However, numerous otherscheduling techniques are known in the art for minimizing or reducingprocessing time and cost, many of which may be usefully employed withthe systems and methods described herein. For example, the system mayemploy rule-based scheduling, route-based scheduling, state-basedscheduling, neural network-based scheduling, and so forth.

In one embodiment, the scheduling component 224 may permit selection ofone or more of these various scheduling models to control operation ofthe system 100. This may be presented, for example, as a user-selectableoption in a user interface such as the interface described below. Once ascheduling technique is selected, a user may be prompted for any inputssuch as rules, process steps, time constraints, and so forth. In otherembodiments, the selection of a scheduling technique controlled by thecontroller 220 based upon, for example, optimization or other analysisof hardware connected to the hardware interface 210 and/or any recipesscheduled for execution. Computerized selection of scheduling techniquesmay employ the creation and/or evaluation of one or more processingmetrics such as an estimation of processing resources required, faulttolerance, throughput, or any other useful criteria with which automatedselections of scheduling techniques may be objectively compared. Inembodiments, the scheduling component 224 may employ multiple schedulingtechniques concurrently. While one example of this is theneural-network-weighted state machine described below, it will beappreciated that numerous other combinations may be usefully employed.For example, the scheduling component 224 may use a state machine tocontrol robotics, while rule-based scheduling is employed to control andoptimize use of process tools. All such variations are intended to fallwithin the scope of this disclosure.

The diagnostics component 226 may monitor operation of the system 100.This may include tracking scheduled maintenance as well as monitoringoperation of the system to identify hardware failures and to determine,where possible, when failures are becoming more likely based uponcurrent operation. One useful hardware diagnostics system is described,for example, in U.S. application Ser. No. 11/302,563, incorporated byreference herein. The diagnostics component 226 may also monitorsoftware performance using, for example, the “black box” techniquesdescribed below.

Other components 228 may include any other useful modules, executablefiles, routines, processes, or other software components useful inoperating the controller 220, and more generally, in controllingoperation of a semiconductor manufacturing system 100 as describedherein. This may include, for example, device drivers for controllingoperation of hardware through the hardware interface 210. This may alsoinclude database management software, communications protocols, and anyother useful software components.

The controller 220 may include a fabrication facility interface 230 thatmay provide an interface to other users within a fabrication facility.This may include a number of different types of interfaces. For example,the fabrication facility interface 230 may include a programmaticinterface that facilitates remote operation and control of thecontroller 220. The interface 230 may also, or instead, include a webserver for remote, web-based access to programs, data, and statusinformation relating to the system 100. The interface 230 may also, orinstead, include interfaces to other shared computing resources within afabrication facility such as the wafer database 242 and the recordsdatabase 244.

The wafer database 242 may provide wafer-specific data as described ingreater detail below. This may include any useful data for a wafer suchas current temperature, historical temperature(s), particle maps, and soforth. While depicted as a shared resource within a facility, it will beunderstood that the wafer database 242 may also, or instead, include adatabase on the device hosting the controller 220. In such cases, thefabrication facility 230 would preferably include an external interfaceto wafer data stored by the controller.

The records database 244 may store any information useful outside thescope of the controller 220. This may include, for example event logsand the like from the controller 220 as well as maintenance records andschedules (such as for robots and process tools), processing recipes,user manuals, technical specifications, data schemas, programmingguides, and any other data relevant to the semiconductor manufacturingsystem 100 or the software 200.

As noted above, the foregoing description is generalized to facilitatediscussion of more specific software systems disclosed herein. Unlessotherwise indicated, the specific software components identified in FIG.2 may reside in a single device or multiple devices, and may becentralized or distributed. Thus for example, the process toolinterfaces 202 may be programming interfaces resident on associatedprocess tools, and may be accessed through the hardware interface 210 ofthe controller 220 for use in, e.g., scheduling or display.Alternatively, a process tool may not provide a programming interface,but may consist of physical connections controlled through one or moredrivers in the hardware interface 210. All such variations that maysuitably employed in a software architecture for controlling asemiconductor fabrication facility are intended to fall within the scopeof this disclosure.

It will be appreciated that the systems and methods described herein maybe realized in hardware, software, or any combination of these suitablefor a particular application. The hardware may include a general purposecomputer and/or dedicated computing device. The processes may berealized in one or more microprocessors, microcontrollers, embeddedmicrocontrollers, programmable digital signal processors or otherprogrammable device, along with internal and/or external memory. Theprocesses may also, or instead, be embodied in an application specificintegrated circuit, a programmable gate array, programmable array logic,or any other device that may be configured to process electronicsignals. It will further be appreciated that the process may be realizedas computer executable code created using a structured programminglanguage such as C, an object oriented programming language such as C++,or any other high-level or low-level programming language (includingassembly languages, hardware description languages, and databaseprogramming languages and technologies) that may be stored, compiled orinterpreted to run on one of the above devices, as well as heterogeneouscombinations of processors, processor architectures, or combinations ofdifferent hardware and software. At the same time, processing may bedistributed across a number of different computing devices in a numberof ways, or all of the functionality may be integrated into a dedicated,standalone controller or other hardware. All such permutations andcombinations are intended to fall within the scope of the presentdisclosure.

FIG. 3 shows a graphical user interface for human monitoring and controlof a semiconductor processing system. The interface 300 may include avariety of functional areas each accessible using for example a numberof buttons 302 on a menu bar 304. The functional areas may includeconfiguration, 3D graphics, job control, maintenance, process control,motion engine, factory interface, and operator login, and so forth. Eachbutton may open a window or a pane within the interface 300 thatprovides user inputs and display related to the corresponding functionalarea. A number of examples are provided below.

By way of example and not limitation, a number of functional areassuitable for use in a semiconductor processing controller are nowdescribed. A login pane 306 may provide text input fields for inputtinga user name and password, either for authenticating a user to thecontroller 220 described above, or for authenticating the controller 220to a fabrication-wide software system. A motion settings pane 308 mayprovide text or numeric input fields for receiving user parameters formotion such as maximum acceleration for a robotic arm with and/orwithout a wafer. A job control pane 310 may provide for user selectionof wafer processing jobs, using radio buttons, file browsing, scrolllists, drop down lists, or any other input control. The job control pane310 may also, or instead, provide job execution controls such as start,stop, store, and edit so that a user may control execution of selectedjobs. A 3D graphics pane 312 may provide for user control over 3Dvisualization parameters such as selection of which system hardware isdisplayed, whether display is opaque or transparent, color of display,selection of perspective for rendering, and so forth. A configurationpane 314 may provide for manual control and/or setup of systemcomponents. For example, using the configuration pane 314, a user maymanually open and close slot valves, vents, and so forth. Theconfiguration pane 314 may also permit a user to save a configurationassociated with a job, or with a power up of the system. A status bar316 may provide real time display of operating parameters such aspressure, position, temperature, or the like as measured at variouspoints within the system 100. It will be understood that real time is aninherently flexible term that depends substantially on the context inwhich it is applied. In general, “real time” implies an operationaldeadline from an event to a system response. One common metric for realtime processing in industrial controls is 20 milliseconds—a minimum timebase for a wide array of control hardware. Thus, in this context,substantially real time refers to about 20 milliseconds or less, whilenear-real time refers to an interval not significantly greater than 20milliseconds.

A 3D graphics pane 318 may display a three-dimensional simulation of asemiconductor workpiece handling system which may include, for example,the system 100 described above. The three-dimensional simulation mayinclude a real-time simulation based upon concurrent operation of aphysical semiconductor workpiece handling system. For example, anoperating system may gather data from sensors, robot drive encoders,pressure gauges, and the like, and use this acquired data to drive aninverse kinematics or other simulation engine that simulates the system.The displayed hardware 320 may contain 3D renderings of each hardwareitem including, for example, equipment front end modules, front openingunified pod loaders, wafer cassettes, wafers, process modules, robotdrives, robotic arms, end effectors, isolation valves, heating stations,cooling stations, aligners, load locks, vacuum pumps, metrology devices,sensors, and any other hardware. It will be understood that, in thecontext of describing the graphics pane, a hardware item may includehardware that forms the processing system, as well as items handled bythe system (e.g., cassettes, wafers, and other workpieces) and utilitiessuch as gas, electricity, and the like used by the system. One or morehardware items 322, which may include any of the hardware noted above,may include a link contained within an area of the pane 318 where thehardware item 322 is displayed or resides.

One or more controls may be provided for user navigation within thegraphics pane 318. This may permit rotation, translation, zoom, pan, andthe like so that a user may control what portion of the simulation is tobe viewed, and how closely and from what perspective the simulation isto be viewed.

Each link for a hardware item may be a hyperlink that is accessible to auser by a mouse over or point and click operation within the pane 318 inthe area where the hardware item 322 resides. The hyperlink may provideaccess to information related to the hardware item including, forexample, a status of the hardware item 322 or technical information forthe hardware item 322. Certain items, such as status may be usefullyobtained locally by the controller 220 through direct access to processtools and other sensors. On the other hand, other items such amaintenance records or technical documents may be more convenientlystored at a central repository for use throughout a fabricationfacility. Technical information may include, for example, a list ofreplacement parts for a hardware item (which may be further hyperlinkedto inventory, procurements, etc.), a user manual for the hardware item,a maintenance schedule for the hardware item, a maintenance log for thehardware item. Status information may include, for example, sensor dataor diagnostic information (such as a performance evaluation, an expectedtime to failure, a maintenance alert, and an operating condition alert).Where the hardware item is a wafer, the status information may alsoinclude any of the data described below that might be stored in awafer-centric database including without limitation particle maps,estimated temperature, wafer center location, a wafer process history, arecipe, and so forth. Where an alert is created, such as overheating ofa system component, a pop-up or other window may be created for thehardware item without user activation.

Information accessed through the links may be displayed in a number offashions. For example, the information may be displayed in a new window,or a new pane within the user interface 300. The information may bedisplayed in a pop-up window within the pane 318, such as a callout orthe like extending from the selected hardware item.

FIG. 4 shows a state machine. It will be appreciated that the statemachine 400 of FIG. 4 is a highly simplified state machine, and thatstate machines used for real time control of a semiconductormanufacturing process would typically be significantly more complex,having significantly more states and transitions than illustrated inFIG. 4.

A state machine 400 may include a number of states including a firststate 402, a second state 404, and a third state 406. The states mayrepresent, for example, the states of an isolation valve (e.g., open orclosed), positions of a robotic arm (e.g., location x, y, z, etc.),status of a buffer station, or any other state or combination of statesin a semiconductor manufacturing process. Each change from one state toanother state occurs through a transition, such as a first transition410. It will be noted that each state may have one or more transitionsinto and out of that state. This may be, for example, a control signalor a sensor output that triggers a response by an item of hardware totransition to a different state.

It will be understood that while a simple finite state machine 400 isdepicted in FIG. 4, numerous other techniques can be employed torepresent state machines. For example, a state machine may be fullyrepresented by a state table that relates states and conditions intabular form. In addition, various conceptual state machines usedifferent models. For example, certain state machine models definebinary conditions for transitions while others permit more generalizedexpressions for evaluating state changes. A so-called Moore machine hasoutputs that depend only on the current state, while a Mealy machine hasstate outputs that depend on an input and the state. Other commonly usedrepresentations for software implementations of state machines includealgorithmic state machines, Unified Modeling Language (“UML”) statediagrams, directed graphs, and so forth. These and other state machinemodeling techniques may be usefully employed to characterize and controla semiconductor manufacturing process.

FIG. 5 shows a neural network 500. It will be understood that the neuralnetwork 500 depicted in FIG. 5 is a generalized representation, and thatthe size and depth of a neural network 500 used to control asemiconductor fabrication process may vary significantly from thisdepiction.

The network 500 may include, for example, a three-layer network ofobjects 502. An input 504 may be applied to one of the objects 502 atthe top level of the network 500 (e.g., the “input layer”) and an output506 may be produced by one of the objects 502 at the output layer. Eachof the objects 502 in this network 500 may contain any number ofartificial neurons and objects as will be described in greater detailbelow. In general, there may be any number of objects 502 in the inputlayer, output layer, and middle layer. The number of objects 502 at theinput layer 504 may correspond to the number of components 508 of theinput 504 (which may be a vector or the like) and the number of objects508 at the output layer 506 may correspond to the number of components508 in a target value vector, which is an output 506 used to train thenetwork 500. Each component 508 may be a real value. The number ofobjects 502 in the middle layer may be, for example, the average numberof objects 502 in the input and output layers. Each object 502 in onelayer of the network may be fully connected to objects 502 of theadjacent layer or layers. In this way, the output from each and everyobject 502 in the input layer is provided as an input to each and everyobject 502 in the middle layer. Likewise, the output from each and everyobject 502 in the output layer of the middle layer is provided as aninput to each and every object 502 of the output layer.

A process for creating the neural network 100 typically involvescreating an array of objects 502. As described below, each object 502may further have the ability to clone itself based on any useful processmetric or other objective criteria. For example, a useful criterion maybe derived from a physical and/or theoretical understanding of anenvironment, such as the processing time required to evaluate an input504 to the network 500 based upon available processing resources. Thiscriterion may have particular use where the neural network 500 isintended for use in real time control, thus imposing constraints such ascompletion of processing within 20 milliseconds or some other real timecontrol time increment. In other words, where a system requires actionwithin a known time interval, the network 500 may be configured toautomatically add or remove objects (e.g., nodes) in order to ensurecompletion of any evaluation within the known interval, or alternativelyto improve the likelihood of completion within the known interval. Thuswhere possible, the network 500 may automatically provide finer grainedprocessing to more accurately represent the modeled environment.

The neural network 500 may be implemented according to anobject-oriented programming paradigm. Within this, the objects 502 maybe capable of propagating or cloning themselves according to one or morepredetermined conditions. These actions may be conducted autonomously,by the individual objects 502. Thus the neural network 500 mayreconfigure itself without manual intervention. In embodiments, theobjects 502 may be represented in an array data structure, which mayinclude singly- or doubly-linked lists that represent the tree structureor hierarchy of the neural network 500. The neural network 500 mayinclude any number of tiers or layers. The objects 502 may be softwareobjects as expressed in an object-oriented language or any othercomputer language. More generally, numerous programming techniques areknown in the art for designing and implementing neural networks insoftware, and all such techniques may be suitably adapted to use withthe systems and methods described herein, particularly techniquessuitable for use in a real time control environment. It will beappreciated that the term “neural network” as used herein may refer to aconventional neural network or to a neural network that employsself-cloning nodes as described in greater detail below.

FIG. 6 shows a neural network providing weights to a finite statemachine. In this control system 600, handling hardware 602 includes aplurality of robots 604, such as any of the hardware and robotsdescribed above. In general operation, output from the handling hardware602 provides inputs 608 to a neural network scheduler 610. The schedulerin turn calculates weights 612 for one or more states 614 of a finitestate machine. These states, in turn, provide control signals to therobots 604 and any other handling hardware 602.

The inputs 608 to the neural network scheduler 610 may include any dataderived from the handling hardware 602, such as sensor data from opticalsensors, pressure gauges, switches, and so forth. The inputs 608 mayalso, or instead, include robotic data such as encoder data thatindicates positions of a robotic drive or the robotic componentsattached thereto. The inputs 608 may also, or instead, include processedsensor data. For example, a switch may detect whether a slot valve isopen or closed (and optionally, in transition), and the switch outputsignal may be converted into a Boolean representation of the valvestatus. For example, an optical sensor and optical source may worktogether to provide an optical beam that is periodically broken by thepassage of a wafer there between. This data may be processed to capturethe time of a transition from wafer presence to wafer absence (or,conversely, wafer absence to wafer presence), and the transition typeand time may be provided as an input 608. In other embodiments, thissensor data may be further processed to calculate a center of a wafer,and wafer center coordinates may be provided as the inputs 608.Similarly, robot encoder data may be provided in raw form to the neuralnetwork scheduler 610, or may be converted into physically meaningfulvalues such as x, y, and z coordinates of an end effector. The inputs608 to the neural network scheduler may relate to a wide variety ofsystem information such as a pick time, a valve status (such as andwithout limitation open, closed, opening, closing, unknown, and soforth), a transition time (such as and without limitation, the time ittakes to pump a load lock down to vacuum or up to atmosphere), and soforth. More generally, the inputs 608 may be any raw or processed dataavailable from the handling hardware 602.

At the same time, it will be understood that the inputs 608 may assumemany forms. For example, the inputs 608 may include vectors, realnumbers, complex numbers, or the like. The data may be represented asintegers, floating point values, or any other numerical representationsuitable for use with the neural network scheduler 610. The inputs 608may be synchronous (i.e., a single vector provided at regular timeintervals) or asynchronous 608 (i.e., with signals arriving at varioustimes from various hardware items within the handling hardware 602).

The neural network scheduler 610 may include any of the neural networksdescribed above. In general, the neural network scheduler 610 operatesto process inputs 608 and calculate weights 612 used by a finite statemachine. The neural network scheduler 610 may drive calculations as fardown a neural network as possible given a time constraint and a finitecomputing resource with which to process the neural network. So, forexample, the scheduler 610 may be dynamically adapted to updateconsistent with real time scheduling, or may be statically designed toensure completion of calculations in time for real time control,according to the hardware and software platform supporting the scheduler610. Relative to the robots 604 and the handling hardware 602, theneural network scheduler 610 may work off-line, updating the weights 612from time to time as the robots 604 are more or less continuouslyoperating based upon the finite state machine 616 and transitionstherein having the highest weight 612 at the time.

The states 616 of the finite state machine may employ any current valueof the weights 612 to determine whether a transition is appropriate, andgenerate any suitable control signals to the robots 604 and otherhandling hardware 602. It will be understood that the state machine mayemploy multiple concurrent states, or the system 600 may includemultiple state machines (i.e., one state machine for each item ofhardware, or for discrete groups of hardware), or the system may employstates with multiple outputs. While state machine modeling techniquesare generally conceived to permit full description of any system,certain techniques may be more convenient for describing the handlinghardware 602 described herein. Thus it will be appreciated that whileany state machine design and programming techniques may be used, certaintechniques may be advantageously employed in the context of real timecontrol of semiconductor fabrication and handling systems. The use ofstate machines to control semiconductor manufacturing hardware, and moregenerally the use of state machines in industrial control, are wellknown in the art.

FIG. 7 shows a process for controlling a semiconductor processing systemwith a finite state machine and a neural network.

A neural network 710 receives data from a semiconductor manufacturingsystem 730. These inputs are applied to the neural network 710 as shownin step 712. The neural network 710 then processes nodes as shown instep 714 to calculate outputs as shown in step 716. The outputs may beweights for transitions of a state machine 720. As noted above, a widearray of neural network and corresponding computing techniques may beemployed. Where real time control or near real time control is desired,the neural network 710 may be constrained so that updated outputs areprovided within a predetermined time interval, such as every 20milliseconds.

A finite state machine 720 evaluates current states 722 to determinewhether to transition to another state as shown in step 724, using theweights provided as outputs from the neural network 710. If a transitionis appropriate, the finite state machine 720 proceeds to a new state asshown in step 726 and generates corresponding control signals 728 foroutput to the system 730. If a transition is not appropriate, the finitestate machine may return to re-evaluate the current state 722, withcorresponding control signals created as outputs to the system 730. Itwill be appreciated that in control of the system 730, states andtransitions may each have numerous output control signals associatedtherewith. In a real time system, the control signals 728 may be updatedat a predetermined time interval such as every 20 milliseconds. It willbe noted that the state machine 720 may employ outputs from the neuralnetwork as well as physical data output from the system 730.

As noted above, numerous state machine architectures may be employedwith the systems described herein. For example, the weights may bevalues for conditional transitions. These weights may represent physicalquantities conditionally applied to transitions such as time, position,pressure, and so forth. Thus a state may conditionally transition toanother state when pressure in a process tool interior chamber is belowa threshold, with the threshold represented by a weight from the neuralnetwork. Similarly, the weights may represent Boolean values and/orexpressions, as well as sensor data or any other scalar or vectorquantities. In other embodiments, the weights may represent valuesassigned to a number of possible transitions from a state. In suchembodiments, remaining in the current state may have a weight of 0.4,transitioning to another state may have a weight of 0.39, andtransitioning to a third state may have a weight of 0.21. In this state,the state machine will remain in the current state indefinitely.However, if the weight of the current state drops to 0.35 and the weightof one of the other states rises to 0.4, then a transition will beinitiated in the next processing cycle.

In another embodiment, each state may have a number of possibletransitions arranged as, for example, a stack or linked list of itemseach having one or more conditions for initiating a transition. Theneural network 710 may be employed to reorder the conditions accordingto an evaluation of the inputs from the system 730, or to shift thelinked list of items, so that one of the conditions is evaluated first.In such a system, the neural network 710 may also reprioritize eachcondition independently and/or may add or remove conditions and/or mayalter values used to evaluate each condition.

The semiconductor manufacturing system 730 may receive the controlsignals created by the state machine 720 in step 728. As generallydepicted in FIG. 7, the system 730 may execute control signalscontinuously (step 734), and may generate data output continuously (step732). It will be appreciated that the timing for these steps may becontinuous or periodic and synchronous or asynchronous according to thehardware and sensors employed by the system 730.

As a significant advantage the general architecture described above canseparate processing that re-evaluates or reconfigures the state machinefrom the actual operation of the state machine. Thus, for example, thestate machine may operate without input from the neural networkindefinitely, providing conditional and/or unconditional transitionsamong states according to inputs from the physical system and generatingcorresponding control signals at any time interval suitable or desirablefor controlling the system 730. At the same time, the neural network 710may expend any appropriate amount of processing resources (e.g., byprocessing the neural network 710 to any suitable depth) withoutrequiring an update at the same time interval as the state machine 720.In other words, the neural network 710 may fully evaluate outputs evenwhere the processing time extends over many time increments of thefinite state machine. The neural network 710 may also, or instead,curtail processing to provide updated outputs at each time increment ofthe state machine, at every other time increment of the state machine,or at any other suitable interval.

It will be appreciated that the foregoing description shows a neuralnetwork based scheduling system at a high level. It will also beunderstood that that other techniques may be employed to modify a statemachine asynchronously. For example, the state machine may bereconfigured using heuristic techniques, rule-based techniques, look uptables, and/or any other processing techniques provided they do notprevent the state machine from continuing to provide substantially realtime control of the system 730. These and numerous other variations andmodifications to the process 700 will be readily appreciated by one ofordinary skill in the art and are intended to fall within the scope ofthis disclosure.

FIG. 8 is a functional block diagram of a self-propagating object in aneural network. In general, a self-propagating, object-based neuralnetwork 800 may include a plurality of nodes 802, each containing aneuron 804, an output or weight 808, and one or more other nodes 802.

Each node 802 may be implemented, for example, as an object in anobject-oriented environment. As shown, any of the nodes 802 may containother nodes 802, which may recursively include similar objects.

The artificial neuron 804 within each node 802 may provide conventionalfunctionality of a neuron within the neural network 800, with one ormore outputs of the neuron 804 represented as weights 808. The neuron804 may be embodied in any implementation of artificial neurons usefulfor programmatic implementation of a neural network, including withoutlimitation a perceptron, a sigmoid unit, a linear unit, and so forth.Both the artificial neurons 804 and the nodes 802 of a particular node802 may be arranged together in a network such as a directed,undirected, cyclic, and/or acyclic graph; a map; a mesh; and so forth.In one embodiment, these nodes 802 are arranged in an acyclic, directedgraph. In any case, an output from one artificial neuron 804 at a node802 may be the input to one or more other artificial neurons 804 at oneor more other nodes 802. The set of weights 808 may comprise an orderedset of real values used to control a state machine as generallydescribed above.

In embodiments, the nodes 802 may be object-oriented nodes implementedon a single, uniprocessor computer; a plurality of uniprocessorcomputers; a single, multiprocessor computer; a plurality ofmultiprocessor computers; and so forth. The neural network 800 mayprovide a parallel computation of an input vector to an output vectoracross a plurality of nodes 802. The nodes may be evaluated orcalculated using an algorithm; a heuristic; an approximation; anoptimization; a gradient descent; a stochastic approximation of gradientdescent; backpropagation with or without momentum, weight decay, and/orany other techniques suitable for evaluating a neural network. Executionof the evaluation may operate in parallel or sequentially, locally onone computer or distributed across a plurality of computers. Thearchitecture may employ multi-threading, multi-tasking, distributedcomputing, batch computing, timeshare computing, remote procedure calls,client-server computing, peer-to-peer computing, SIMD computing, MIMDcomputing, SISD computing, MISD computing, a service-orientedarchitecture, an n-tier architecture, a monolithic softwarearchitecture, a modular software architecture, and so forth. Moregenerally, any suitable computing techniques may be employed to evaluatethe neural network 800 and calculate output values such as weights 808there from.

Generally, the neural network 800 may accept an input, process the inputaccording to a feedforward computational mechanism, and produce aresult. Both the input and the output may be a vector of real values.Generally, the input value may be drawn from training data, validationdata, or application data. The training data and the validation data maycomprise inputs associated with desired outputs, which may be referredto as “target values.” These target values may be generated by a targetfunction. The application data may comprise inputs but not targetvalues. The training data and validation data may be used during atraining process that prepares the neural network 800 for use in anapplication. The application data may be the inputs that the neuralnetwork 800 receives during operating of, e.g., a wafer fabricationprocess.

An output of the neural network, or a node thereof, may conform to anapproximation of the target function of the input. In an embodiment, theoutput is computed by providing an input to the neural network 800 andapplying a feedforward algorithm to the network 800. In accordance withobject-oriented programming principles, a parent node 102 may apply thefeedforward algorithm to its artificial neuron(s) 804 and may request ofits child nodes 802 that they do the same, such as via a methodinvocation on each of the objects representing a child node 802. Thisprocess may continue recursively as the child nodes 802 apply thefeedforward algorithm to their artificial neurons and request of theirchild nodes 802 that they do the same. After this process fully resolvesa final output is produced.

The output or weights 808 may be compared with a target value. Thedifference between the output and the target value may be referred to asan error and the function that calculates the error may be referred toas an error function. In the preferred embodiment, the error functioncalculates a mathematic difference between the output (which may be avector) and the target value (which may also be a vector). When theoutput equals the target value, the error has zero magnitude signifyinga correct, target output. In such cases, the neural network 800encompasses a perfect approximation of a target function for that input.

Creating a useful neural network 800 involves a training process. Thisprocess may subject the network 800 to an input selected from thetraining data and then adjust the network 800 according to any resultingerror(s). The general objective of this training process is to adjustthe neural network 800 so that it forms a good approximation of thetarget function with respect to all possible inputs selected from thedomain of application data. In other words, a goal of the trainingprocess may be to adjust the neural network 800 so that the error isminimized, if not zero, with respect to any and all inputs drawn fromany and all sets of application data. The training process may employ abackpropagation algorithm for adjusting the network 800 based upon theerror. It will be appreciated that a neural network may be usefullytrained without knowing or articulating the target function that relatesinputs to outputs.

Those skilled in the art will appreciate that any function can beapproximated with arbitrary accuracy by a neural network 800 composed ofthree layers of artificial neurons 804 arranged in an acyclic, directedgraph with the bottommost layer (often referred to as the “outputlayer”) of neurons 804 encompassing linear units and the two otherlayers of neurons 804 encompassing sigmoid units. However, it will alsobe appreciated that the number of neurons 804 required in each of theselevels is not generally known. One possible result of not having enoughneurons 804 in a layer is an inability of the network 800 to approximatethe target function with enough accuracy for a given application.Conversely, increasing the number of neurons 804 in a layer willincrease the computational complexity associated with the trainingprocess. Moreover, the number of neurons 804 required in a layer canincrease exponentially with the number of inputs to the network 800.Furthermore, greater numbers of neurons 804 may be more prone tooverfitting a set of training data.

As a significant advantage, implementing the nodes of a neural network,array declarations for the neural network can be significantly smaller.As another advantage, each object may encapsulate the ability to adaptto processing or training demands by adding or removing related nodes.This latter aspect is discussed in greater detail below.

In one aspect, one or more nodes 802 may include an autonomous abilityto create or remove child nodes. An algorithm, heuristic, or otherautomatic process may determine when a node 802 should clone itself. Forexample and without limitation, such a process may recognize that thenode 802 is of insufficient complexity to process its inputs, such aswhere unsatisfactory training results are observed based upon someobjective criterion or criteria for the error function. Similarly, anode 802 may eliminate related nodes where evaluation of the network 800takes too long or uses excessive processing resources. In any case, theprocess of cloning may involve copying the node 802, spawning a newobject based upon the node 802, adding one or more nodes 802 aschildren, adding one or more additional artificial neurons 804 withinthe node 802, and so forth. These newly created objects or neurons mayreceive as input a value from an environment, from the parent node 802,or from any other child nodes 802 that may have been created due to thecloning process. The cloned nodes 802 may adapt in response to theirinputs using any suitable techniques including, perhaps as directed byan algorithm, heuristic, or other automatic process. Similarly, a node802 may be removed from the neural network 800 in response to thedetermination of an algorithm, heuristic, or other automatic process.

In this manner, the neural network 800 may tend toward adequate but notexcessive nodes 802 for approximating a target function within apredetermined error.

FIG. 9 shows a data structure 900 for storing wafer-specific data. Thedata structure 900 may generally include a wafer identifier 910, aprocess history 920, a recipe 930, a particle map 940, real time data950, and estimated values 960.

The data structure 900 may be implemented as an XML database, arelational database, an object-relational database, or any otherdatabase or data structure suitable for storing information as describedherein. The data structure 900 may be embodied in a volatile memory suchas memory allocated for execution of a control program, or innon-volatile memory such as a fabrication facility data repository, orsome combination of these. Storing wafer data in a single data structuremay provide significant advantages including easier access towafer-specific data and greater portability of data for a wafer,including for example the data described below.

The data structure 900 may include a wafer identifier 910 thatidentifies and/or describes the wafer. This may include a number orother code that uniquely identifies the wafer either globally or withina particular fabrication facility, wafer lot, or other appropriatecontext. The wafer identifier 910 may also include descriptive data suchas a wafer owner, chip type, wafer specifications and so forth. In oneaspect, the wafer identifier may serve as a primary index for awafer-centric database that contains data on a number of wafers.

The data structure 900 may include a process history 920 that containsan event log, recipes, process steps, and the like for a wafer. Thus afull or partial history of a wafer may be stored in the data structure900 for subsequent review or archiving.

The data structure 900 may include a recipe 930 for processing thewafer. This may be a current or prospective recipe applicable to aparticular wafer. Where a wafer is one of a number of wafers intendedfor a batch or other group process, the recipe 930 may contain areference to an external (from the data structure) data location thatcontains the recipe, so that a single recipe may be shared among anumber of wafers.

The data structure 900 may include a particle map 940 that stores animage or other record of particles and/or defects on the surface of awafer. The particle map 940 may, for example, be employed to controlsubsequent processing steps, and/or may be updated during inspection orother metrology of a current process. In one aspect, the particle map940 field of the data structure 900 may contain a reference to aseparate table or group of data items that contain various images andother representations of the wafer.

The data structure 900 may include real time data 950 for the waferidentified in the wafer identifier 910. This data may include a numberof fields, such as in a related table, for various data types such astemperature, orientation, position, and so forth. Each row of therelated table may, for example, contain an entry of a data type (e.g.,temperature), data units, a value, and a time at which the real timedata was acquired. In another aspect, the real time data 950 may consistof a list of measurements to which new measurements are appended.

The data structure 900 may include calculated values 960 which may be atable, group of fields, or the like that contain estimated or calculatedvalues for the wafer. This may include, for example, actual or estimatedwafer center positions as calculated from various sensor measurementswithin a system. As another example, this may include wafer temperature.An estimated wafer temperature may be calculated for example based uponother system information such as a previously measured wafertemperature, an amount of time since the measured temperature, thermalcharacteristics of the wafer (which may be simulated or otherwisephysically modeled or estimated), ambient temperature information, andany other relevant information available from the system.

It will be appreciated that numerous other fields are possible, and thateach field may contain a single data item, a series of data items, or areference to a table or external data source that contains correspondingdata. It will further be appreciated that the data may be embodied in anobject-oriented data structure, an XML data structure, a relationaldatabase, or any other form suitable for storage and retrieval of datain fields thereof. As a significant advantage, the data structure 900may encapsulate any relevant data for a wafer, and may be readily portedto any other environment. Thus the data structure 900 may be stored in afabrication facility data repository where it may be used in a currentprocess as well as any subsequent processes. The data structure 900 maybe transported with the wafer to other fabrication facilities, and usedby a variety of different programs to analyze the wafer includingfacility-wide programs to calculate yield, throughput, or the like aswell as specific handling/processing systems where the wafer is to beprocessed. Other advantages will be clear from the foregoing, includingan ability to maintain physical models of a wafer that permit moreefficient and/or accurate processing decisions during a fabricationprocess.

FIG. 10 shows a use of wafer-centric information to control a workpiecefabrication process. In a system 1000, an automatic, semi-automatic, ormanual process, or combinations of these, may direct a wafer 1002through one or more wafer processing facilities 1008. Data may begathered throughout the process and forwarded to a wafer-centricdatabase 1010 where the data may be stored with or otherwise indexed bya data structure associated with the wafer 1002. Data such as wafertemperature, wafer position and the like may be acquired from sensorswithin the system 1000. In addition, data concerning process steps maybe logged in the various processing facilities 1008. All of this datamay be forwarded to the database 1010 and associated with other data forthe wafer 1002. Aspects of this system are now described in greaterdetail.

Each wafer processing facility 1008 may receive data from (e.g., througha test, sample, measurement, or other metrology) and/or apply controlsignals to (e.g., to control a robot or processing module) the wafer1002, which may be any of the wafers or other workpieces describedabove. When the wafer 1002 first enters the system 1000, the wafer 1002may be received by a wafer processing facility 1008, and a record,object, or other data structure may be created in the database 1010. Thedata structure may be associated with or indexed by a unique wafer ID asdescribed generally above. Any action or measurement performed by thewafer processing facilities 1008 on the wafer 1002 may then be recordedin the database 1010, along with any instances of related data,metadata, sensor data, and so forth. Any or all of these values, data,and metadata may be stored in the database 1010 in association with thewafer 1002. It will be appreciated that, while a linear system isdepicted, the wafer 1002 may be passed from one wafer processingfacility 1008 to another, in an arbitrary order that may include thewafer being received by the same wafer processing facility more thanonce, and all such movements may be recorded in the data structuredescribed herein. It will further be appreciated that additionalstructure may be provided for the data structure in a variety of usefulways. For example, the data structure may contain a route field thatitemizes each facility 1008 in which the wafer 1002 was processed, andeach entry for a facility 1008 may index a table of process steps withinthat facility 1008. Similarly, any portion of the data structure mayindex other data structures in hierarchical or other fashion whereappropriate for processing efficiency or design convenience.

In one aspect, the database 1010 may be maintained in real time. Thedatabase 1010 may encompass information about the state of a waferprocessing facility 1008 and/or the wafer 1002 itself, the time at whichthe wafer arrived or departed the wafer processing facility 1008, andany other relevant data. When the wafer 1002 leaves the system 1000, thedatabase 1002 may contain every state of the system 1000, or some subsetof states or related data, that was associated with the wafer 1002 whileit was in the system 1000. Where real time data for the wafer 1002 ismaintained, this may be particularly useful for scheduling and controlof processing.

In another aspect, the database 1010 may include fabrication data suchas particle maps, yield data, or other information for the wafer 1002.More generally, data logs or other non-wafer-centric data availablewithin a fabrication facility may be used to populate a wafer-centricdatabase with information applicable to particular wafers. The resultingdata structure may, upon completion of a process, be transferred fromthe system 1000 to travel with the wafer 1002, e.g., to anotherprocessing system within the fabrication facility.

Thus the database 1010 may contain data concerning where the wafer 1002has been throughout an entire fabrication facility, and what processinghas occurred at each location along with detailed data concerning theprocesses and any results thereof. Additionally, the data structure maycontain information on prospective processing required for the wafer1002. In one aspect, the data structure may contain an entire data logof wafer-specific data that spans numerous processing facilities 1008,storage facilities, transportation facilities, and so forth. The log mayinclude a process log, a metrology log, a particle scan log, atemperature log, a pressure log, and so forth. Generally, the log maycontain any available measurements concerning the wafer 1002 or theenvironment in which the wafer was processed. The database 1010 mayalso, or instead, contain any available information about the state ofthe wafer processing facilities 1008 that handled the wafer 1002.

The database 1010 may be available to a fabrication management system ora fabrication automation tool. The database 1010 may be available in (ornearly in) real time. In embodiments, the database 1010 may be stored byan SQL database management system, an XML database management system, orany other database management system or data storage system. In anycase, the database may be stored offsite and away from the system 1010.As a significant advantage over data systems currently used in waferhandling facilities, the wafer-centric database may provide efficient,structured access to wafer-relevant data. While the general availabilityof data in a wafer-centric structure provides significant advantages byitself, the data structure may also significantly improve wafer handlingand processing by enabling wafer-specific processing decisions, asdescribed in the following examples.

Referring to FIG. 11, information associated with a wafer, such as anyof the wafers or other workpieces described above, in a wafer-centricdatabase, such as any of the wafer-centric databases or other datastructures described above, may include any time based data for thewafer, along with the current conditions of the wafer, such as wafer'stemperature. By maintaining temperature data in real time, a current andhistorical temperature profile 1100 may be developed. The profile 1100may be stored in a wafer-centric data structure and used by a controlsystem in which the wafer is being processed. For example, thetemperature data may be employed to optimize the amount of processingtime and/or energy required for proper processing of a wafer. In anexample, a wafer temperature 1102 may be detected at a time 1104 thatthe wafer completes a process and/or exits a process chamber. Thewafer's temperature 1102 may be determined and/or estimated at varioustimes after the process is completed. An estimation of wafer temperature1102 may employ, for example an empirical model, a physical model, orsome other model of the wafer. The model may also account for ambienttemperature conditions and other aspects of the environment, such as ahandler or radiant surface temperatures within a space, that mightaffect wafer temperature. The model may be used to determine changes inwafer temperature 1102 as a function of, e.g., time, and to calculate anestimated temperature at any decision point. Using such a model, whichmay update wafer data in the database on regular intervals, such asevery 20 milliseconds, the wafer temperature 1102 may be known orapproximated at a later stage in processing, such as when the wafer isintroduced into another process module. This may spare significantprocessing time that might otherwise be required to ensure that a waferis heated to a target processing temperature. For example, if thetemperature of the wafer is known when it leaves a process module, thetemperature may be estimated when the wafer arrives at a second processmodule. This information may be used along with known thermal propertiesof the wafer to determine how much heating or cooling is required.

A controller of a wafer processing system may use the actual orestimated wafer temperature 1102 as it prepares the a wafer for asubsequent process. By referring to a current (actual or estimated)temperature of a wafer in the wafer-centric database, the system mayavoid unnecessary heating or cooling. Thus for example, where a wafershould be heated to a process temperature, the database may provide acurrent temperature of the wafer, based upon which an amount ofadditional heating may be determined. Similarly, where a wafer should becooled, the current temperature of the wafer may be employed as an inputto a cooling step in order to minimize or otherwise optimize the timeand energy used to cool the wafer. Variations in wafer temperature maybe the result of, for example, differences in wafer transport time ordifferences in process temperatures. By monitoring these variations andupdating wafer-specific data, subsequent processing may be improved on awafer-specific basis. More generally, such an approach may optimizeoverall throughput by optimizing processing steps based upon currentdata for a wafer in a wafer-centric database. The database may beupdated using measurements, or estimates/models of process parameters sothat an actual or estimated value for such process parameters arecontinuously available in real time or near real time.

In an alternate embodiment, a wafer centric database such as any of thewafer-centric data structures described above may accommodate flexibleuse of a wafer processing system. In general, flexibility may beenhanced by providing wafer-specific data throughout the processing of awafer, which avoids difficulties inherent in otherwise basing decisionson wafer-specific inferences drawn from system-wide processing data. Forexample, a system with a plurality of processes may support processingeach wafer through only the processes required to complete the wafer. Inan example, a system with five processes (A, B, C, D, E) may utilize thewafer-centric database to process a first wafer through (A, C, D) whilea second wafer may process through (A, B, E), and a third may useprocess through (B, C, D, E). A wafer-centric database 402 may allow thefirst wafer to be processing in (C) while the second wafer is processingin (A) while the third wafer is processing in (B). Using a wafer-centricdatabase, it would not be necessary to reconstruct the state of, e.g.,the second wafer as it transitions from process B to process E, basedupon data obtained from various process logs, transport robotics, and soforth. Rather, the history of the second wafer can be obtained directlyby inspection of the second wafer in the database. In addition to dataconcerning history and current state, the data for the second wafer mayinclude a manifest or the like that includes instructions for subsequentprocessing. This data may be employed by a controller in handling thesecond wafer, and in coordinating the handling of other wafers in thesystem 408 that might be vying for handling or processing resources.

As semiconductor fabrication systems and the underlying softwaretherefore grow more complex, it becomes increasingly difficult tomonitor control software, particularly where unexpected errors occurduring execution. On technique for acquiring operational data duringexecution of complex software is described below.

FIG. 12 shows a software system 1200 may include software modules, whichmay consist of or comprise a GUI 1202, a plurality of interfaces 1204, aplurality of black box recorders 1208, a plurality of application logics1210, and a number of APIs 1212. The software modules may be arranged ina stack, as shown, with some modules grouped together to form one ormore applications 1214. The applications 1214 may communicate viainterface 1204 software modules, as shown by double-headed arrows. Asdepicted, there is a GUI 1202 application 1214; an application 1214containing application logic 1210 and no APIs 1212; and an application1214 that contains application logic 1210 and a number of APIs 1212.Ellipsis indicate that, in embodiments, an number of other applications1214 may be present, with those applications 1214 likewise beingarranged as a stack of software modules that have interfaces 1204 toprovide inter-application communication. It will appreciated that thedepicted arrangement is just one example taken from an uncountable setof possible arrangements of software modules 1204, 1208, 1210, 1212 andapplications 1214.

The black box recorders 1208 produce data 1218. This data 1218 mayencompass information about the state of the software modules. Thisinformation may relate to information that is passed between the modulesand/or may relate to an internal state of a software module with which ablack box 1208 recorder has contact. The information may betransparently and automatically gathered by the black box 1208 as theinformation is passed through the black box 1208 from one softwaremodule to another. Alternatively or additionally, a software module mayprovide information directly to the black box 1208, such as and withoutlimitation in the form of an alert, an error message, a status message,or some other message related to a software module's operation.Alternatively or additionally, a black box 1208 may reach into asoftware module and extract information from the software module. Inembodiments, this may be implemented as a method call to the softwaremodule. In embodiments, the black box software module 1208 may beimplemented as an aspect in an aspect-oriented programming paradigm. Inembodiments, the black box software module 1208 may be integrated intothe other software modules via inheritance, a callback, a hard-codedfeature, a dynamically linked library or object, a statically linkedlibrary or object, and so forth.

In embodiments, the black box software modules 1208 may contain circularqueues. As information is collected by a black box 1208, it is added toa circular queue within or associated with the black box 1208.Optionally, the contents of the queue can be dumped to a log file, suchas to preserve those contents from being overwritten. In embodiments, asoftware module, such as and without limitation a diagnostics tool maybe configured to request and/or to receive the contents of the circularqueue. In this way, an up-to-date snapshot of the information in thequeue can be retrieved by the software module. Generally, the data 1218that is produced by the black box encompasses some or all of theinformation gathered by the black box 1208. The data 1218 may beutilized to help determine an exact state of the system 1200 at anytime. In some cases, this time may be associated with an unexpectedevent, such as and without limitation a hardware and/or softwarefailure.

FIG. 13 shows a network for interconnecting process hardware. In thesystem 1300, a number of controllers 1304, which may employ any of thecontrol software and/or data structures described above, may beconnected to a number of robots 1302 and other process hardware (such asslot valves, vacuum gauges, and so forth) using a shared physical medium1306. The medium 1306 may advantageously be a pair of wires or otherserial connection so that controllers and/or robots 1302 may beinterconnected using a single, simple serial communications bus.Numerous protocols are known in the art and may be suitably employed forcontrolling communications among process hardware and controllers thatshare a single physical medium. The daisy-chained interconnectionillustrated in FIG. 13 may also couple to sensors, valves, and the likewhich communicate data back to the controller(s) 1304. While adaisy-chain is one convenient technique for serially interconnectingdevices, it will be understood that other techniques may be employed aswell, such as wired or wireless Ethernet, either of which may share acommon medium for communications.

While the invention has been described in connection with certainpreferred embodiments, other embodiments that would be readilyappreciated by one of ordinary skill in the art are intended to fallwithin the scope of this disclosure. Accordingly, the following claimsshould not be limited to the specific embodiments described above, butshould be afforded the broadest interpretation allowable by law.

1. A user interface comprising: a display of a three-dimensionalsimulation of a semiconductor workpiece handling system that includes ahardware item; and a link to information related to the hardware item,wherein the link is substantially contained within an area of thedisplay where the hardware item resides, and wherein the informationincludes at least a status of the hardware item and technicalinformation for the hardware item.